/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejb;

import com.sun.crypto.provider.AESCipher;
import entities.AccionEstrategica;
import entities.Dependencia;
import entities.Objetivo;
import entities.Persona;
import entities.Prioridad;
import entities.Responsable;
import entities.Tarea;
import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author curso
 */
@Stateless
@LocalBean
public class ServicioAccionEstrategica {
 @PersistenceContext(unitName="BSCPU")
    private EntityManager em;
    
    public void altaAccionEstrategica(AccionEstrategica a){
        em.persist(a);    
    }
    
    public List<Tarea> verTareas(int id){
        Query q=em.createNamedQuery("Tarea.findByAccionEstrategica", Tarea.class);
        q.setParameter("idAccionEstrategica", id);
        return q.getResultList();
        
    }
    public void modificar(AccionEstrategica a){
        AccionEstrategica nueva=em.find(AccionEstrategica.class, a.getIdAccionEstrategica());
        nueva.setAccionEstrategica(a.getAccionEstrategica());
        nueva.setFechaFin(a.getFechaFin());
        nueva.setFechaInicio(a.getFechaInicio());
        Prioridad p=em.find(Prioridad.class, a.getIdPrioridad().getIdPrioridad());
        nueva.setIdPrioridad(p);
        Dependencia d=em.find(Dependencia.class, a.getIdDependencia().getIdDependencia());
        nueva.setIdDependencia(d);
        
        Responsable r=em.find(Responsable.class, a.getIdResponsable().getIdResponsable());
        Persona nuev=r.getIdPersona();  
        Persona per=em.find(Persona.class, nuev.getIdPersona());
        per.setNombre(a.getIdResponsable().getIdPersona().getNombre());
        per.setApPat(a.getIdResponsable().getIdPersona().getApPat());
        per.setApMat(a.getIdResponsable().getIdPersona().getApMat());
        r.setIdPersona(per);
        nueva.setIdResponsable(r);
        
         
        
        Objetivo o=em.find(Objetivo.class, a.getIdObjetivo().getIdObjetivo());
        o.setObjetivo(a.getIdObjetivo().getObjetivo());
        nueva.setIdObjetivo(o);
        
        
        
        
    }
    
    public AccionEstrategica buscaPorId(int id){
        return em.find(AccionEstrategica.class, id);
    }
    public List<AccionEstrategica> verAccionEstrategicas(){
        return em.createNamedQuery("AccionEstrategica.findAll").getResultList();
    }
    public void borraAccionEstrategica(int id){
        AccionEstrategica a=em.find(AccionEstrategica.class, id);
        em.remove(a);    
    }
    

}
